<?php

namespace Gds\ArticleBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Gds\ArticleBundle\Entity\Stock;
use Gds\ArticleBundle\Entity\ArticleRepository;
use Gds\ArticleBundle;

/**
 * Gds\ArticleBundle\Entity\Departement
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Gds\ArticleBundle\Entity\DepartementRepository")
 */
class Departement {

         /**
     * @ORM\OneToMany(targetEntity="Gds\VenteBundle\Entity\BonCommandeClient", mappedBy="departement")
     */
    private $bon_commande;
     /**
     * @ORM\OneToMany(targetEntity="Gds\VenteBundle\Entity\BonLivraisonClient", mappedBy="departement")
     */
    private $bon_livraison;
    /**
     * @ORM\OneToMany(targetEntity="Gds\VenteBundle\Entity\BonLivraisonRetourClient", mappedBy="departement")
     */
    private $bon_retour;
    /**
     * @ORM\OneToMany(targetEntity="Gds\AchatBundle\Entity\BonLivraisonFournisseur", mappedBy="departement")
     */
    private $bons_livraisons_fournisseur;
         /**
     * @ORM\OneToMany(targetEntity="Gds\VenteBundle\Entity\HistoryBonLivraisonClient", mappedBy="departement")
     */
         
    private $history_bon_livraison;
    /**
     * @ORM\OneToMany(targetEntity="Gds\VenteBundle\Entity\Caisse", mappedBy="departement")
     */
    private $caisses;

    /**
     * @ORM\OneToMany(targetEntity="Gds\ArticleBundle\Entity\Stock", mappedBy="departement")
     */
    private $stocks; // Ici commentaires prend un "s", car un article a plusieurs commentaires !
    /**
     * @ORM\OneToMany(targetEntity="Gds\ArticleBundle\Entity\Inventaire", mappedBy="departement")
     */
    private $inventaires; // Ici commentaires prend un "s", car un article a plusieurs commentaires !
    /**
     * @ORM\OneToMany(targetEntity="Gds\UserBundle\Entity\User", mappedBy="departement")
     */
    private $employers;

    /**
     * @ORM\ManyToMany(targetEntity="Gds\VenteBundle\Entity\Client", inversedBy="departements")
     */
    private $clients;

    /**
     * @ORM\ManyToMany(targetEntity="Gds\AchatBundle\Entity\Fournisseur", inversedBy="departements")
     */
    private $fournisseurs;

    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $nom
     *
     * @ORM\Column(name="nom", type="string", length=255,unique=true)
     */
    private $nom;

    /**
     * @var string $adresse
     *
     * @ORM\Column(name="adresse", type="string", length=255, nullable=true)
     */
    private $adresse;

    /**
     * @var string $tel
     *
     * @ORM\Column(name="tel", type="string", length=255, nullable=true)
     */
    private $tel;

    /**
     * @var string $fax
     *
     * @ORM\Column(name="fax", type="string", length=255, nullable=true)
     */
    private $fax;

    /**
     * @var string $type
     *
     * @ORM\Column(name="type", type="string", length=255)
     */
    private $type;

    /**
     * @var string $ville
     *
     * @ORM\Column(name="ville", type="string", length=255)
     */
    private $ville;

    /**
     * @var boolean $is_supprimer
     *
     * @ORM\Column(name="is_supprimer", type="boolean")
     */
    private $is_supprimer;

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId() {
        return $this->id;
    }

    /**
     * Set nom
     *
     * @param string $nom
     * @return Departement
     */
    public function setNom($nom) {
        $this->nom = $nom;

        return $this;
    }

    /**
     * Get nom
     *
     * @return string 
     */
    public function getNom() {
        return $this->nom;
    }

    /**
     * Set adresse
     *
     * @param string $adresse
     * @return Departement
     */
    public function setAdresse($adresse) {
        $this->adresse = $adresse;

        return $this;
    }

    /**
     * Get adresse
     *
     * @return string 
     */
    public function getAdresse() {
        return $this->adresse;
    }

    /**
     * Set tel
     *
     * @param string $tel
     * @return Departement
     */
    public function setTel($tel) {
        $this->tel = $tel;

        return $this;
    }

    /**
     * Get tel
     *
     * @return string 
     */
    public function getTel() {
        return $this->tel;
    }

    /**
     * Set fax
     *
     * @param string $fax
     * @return Departement
     */
    public function setFax($fax) {
        $this->fax = $fax;

        return $this;
    }

    /**
     * Get fax
     *
     * @return string 
     */
    public function getFax() {
        return $this->fax;
    }

    /**
     * Set type
     *
     * @param string $type
     * @return Departement
     */
    public function setType($type) {
        $this->type = $type;

        return $this;
    }

    /**
     * Get type
     *
     * @return string 
     */
    public function getType() {
        return $this->type;
    }

    /**
     * Set ville
     *
     * @param string $ville
     * @return Departement
     */
    public function setVille($ville) {
        $this->ville = $ville;

        return $this;
    }

    /**
     * Get ville
     *
     * @return string 
     */
    public function getVille() {
        return $this->ville;
    }

    /**
     * Constructor
     */
    public function __construct() {
        $this->stocks = new \Doctrine\Common\Collections\ArrayCollection();
    }

    /**
     * Add stocks
     *
     * @param Gds\ArticleBundle\Entity\Stock $stocks
     * @return Departement
     */
    public function addStock(\Gds\ArticleBundle\Entity\Stock $stocks) {
        $this->stocks[] = $stocks;
        $stocks->setDepartement($this);
        return $this;
    }

    /**
     * Remove stocks
     *
     * @param Gds\ArticleBundle\Entity\Stock $stocks
     */
    public function removeStock(\Gds\ArticleBundle\Entity\Stock $stocks) {
        $this->stocks->removeElement($stocks);
    }

    /**
     * Get stocks
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getStocks() {
        return $this->stocks;
    }

    /**
     * Add inventaires
     *
     * @param Gds\ArticleBundle\Entity\Inventaire $inventaires
     * @return Departement
     */
    public function addInventaire(\Gds\ArticleBundle\Entity\Inventaire $inventaires) {
        $this->inventaires[] = $inventaires;

        return $this;
    }

    /**
     * Remove inventaires
     *
     * @param Gds\ArticleBundle\Entity\Inventaire $inventaires
     */
    public function removeInventaire(\Gds\ArticleBundle\Entity\Inventaire $inventaires) {
        $this->inventaires->removeElement($inventaires);
    }

    /**
     * Get inventaires
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getInventaires() {
        return $this->inventaires;
    }

    /**
     * Add employers
     *
     * @param \Gds\UserBundle\Entity\User $employers
     * @return Departement
     */
    public function addEmployer(\Gds\UserBundle\Entity\User $employers) {
        $this->employers[] = $employers;

        return $this;
    }

    /**
     * Remove employers
     *
     * @param \Gds\UserBundle\Entity\User $employers
     */
    public function removeEmployer(\Gds\UserBundle\Entity\User $employers) {
        $this->employers->removeElement($employers);
    }

    /**
     * Get employers
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getEmployers() {
        return $this->employers;
    }

    public function __toString() {
        return (String) $this->nom;
    }

    /**
     * Add clients
     *
     * @param \Gds\VenteBundle\Entity\Client $clients
     * @return Departement
     */
    public function addClient(\Gds\VenteBundle\Entity\Client $clients) {
        $this->clients[] = $clients;

        return $this;
    }

    /**
     * Remove clients
     *
     * @param \Gds\VenteBundle\Entity\Client $clients
     */
    public function removeClient(\Gds\VenteBundle\Entity\Client $clients) {
        $this->clients->removeElement($clients);
    }

    /**
     * Get clients
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getClients() {
        return $this->clients;
    }

    /**
     * Add fournisseurs
     *
     * @param \Gds\AchatBundle\Entity\Fournisseur $fournisseurs
     * @return Departement
     */
    public function addFournisseur(\Gds\AchatBundle\Entity\Fournisseur $fournisseurs) {
        $this->fournisseurs[] = $fournisseurs;

        return $this;
    }

    /**
     * Remove fournisseurs
     *
     * @param \Gds\AchatBundle\Entity\Fournisseur $fournisseurs
     */
    public function removeFournisseur(\Gds\AchatBundle\Entity\Fournisseur $fournisseurs) {
        $this->fournisseurs->removeElement($fournisseurs);
    }

    /**
     * Get fournisseurs
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getFournisseurs() {
        return $this->fournisseurs;
    }

    /**
     * Add caisses
     *
     * @param \Gds\VenteBundle\Entity\Caisse $caisses
     * @return Departement
     */
    public function addCaiss(\Gds\VenteBundle\Entity\Caisse $caisses) {
        $this->caisses[] = $caisses;

        return $this;
    }

    /**
     * Remove caisses
     *
     * @param \Gds\VenteBundle\Entity\Caisse $caisses
     */
    public function removeCaiss(\Gds\VenteBundle\Entity\Caisse $caisses) {
        $this->caisses->removeElement($caisses);
    }

    /**
     * Get caisses
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getCaisses() {
        return $this->caisses;
    }


    /**
     * Set is_supprimer
     *
     * @param boolean $isSupprimer
     * @return Departement
     */
    public function setIsSupprimer($isSupprimer)
    {
        $this->is_supprimer = $isSupprimer;

        return $this;
    }

    /**
     * Get is_supprimer
     *
     * @return boolean 
     */
    public function getIsSupprimer()
    {
        return $this->is_supprimer;
    }

    /**
     * Add bon_livraison
     *
     * @param \Gds\VenteBundle\Entity\BonLivraisonClient $bonLivraison
     * @return Departement
     */
    public function addBonLivraison(\Gds\VenteBundle\Entity\BonLivraisonClient $bonLivraison)
    {
        $this->bon_livraison[] = $bonLivraison;

        return $this;
    }

    /**
     * Remove bon_livraison
     *
     * @param \Gds\VenteBundle\Entity\BonLivraisonClient $bonLivraison
     */
    public function removeBonLivraison(\Gds\VenteBundle\Entity\BonLivraisonClient $bonLivraison)
    {
        $this->bon_livraison->removeElement($bonLivraison);
    }

    /**
     * Get bon_livraison
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getBonLivraison()
    {
        return $this->bon_livraison;
    }

    /**
     * Add bon_commande
     *
     * @param \Gds\VenteBundle\Entity\BonCommandeClient $bonCommande
     * @return Departement
     */
    public function addBonCommande(\Gds\VenteBundle\Entity\BonCommandeClient $bonCommande)
    {
        $this->bon_commande[] = $bonCommande;

        return $this;
    }

    /**
     * Remove bon_commande
     *
     * @param \Gds\VenteBundle\Entity\BonCommandeClient $bonCommande
     */
    public function removeBonCommande(\Gds\VenteBundle\Entity\BonCommandeClient $bonCommande)
    {
        $this->bon_commande->removeElement($bonCommande);
    }

    /**
     * Get bon_commande
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getBonCommande()
    {
        return $this->bon_commande;
    }

    /**
     * Add history_bon_livraison
     *
     * @param \Gds\VenteBundle\Entity\HistoryBonLivraisonClient $historyBonLivraison
     * @return Departement
     */
    public function addHistoryBonLivraison(\Gds\VenteBundle\Entity\HistoryBonLivraisonClient $historyBonLivraison)
    {
        $this->history_bon_livraison[] = $historyBonLivraison;

        return $this;
    }

    /**
     * Remove history_bon_livraison
     *
     * @param \Gds\VenteBundle\Entity\HistoryBonLivraisonClient $historyBonLivraison
     */
    public function removeHistoryBonLivraison(\Gds\VenteBundle\Entity\HistoryBonLivraisonClient $historyBonLivraison)
    {
        $this->history_bon_livraison->removeElement($historyBonLivraison);
    }

    /**
     * Get history_bon_livraison
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getHistoryBonLivraison()
    {
        return $this->history_bon_livraison;
    }

    /**
     * Add bons_livraisons_fournisseur
     *
     * @param \Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonsLivraisonsFournisseur
     * @return Departement
     */
    public function addBonsLivraisonsFournisseur(\Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonsLivraisonsFournisseur)
    {
        $this->bons_livraisons_fournisseur[] = $bonsLivraisonsFournisseur;

        return $this;
    }

    /**
     * Remove bons_livraisons_fournisseur
     *
     * @param \Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonsLivraisonsFournisseur
     */
    public function removeBonsLivraisonsFournisseur(\Gds\AchatBundle\Entity\BonLivraisonFournisseur $bonsLivraisonsFournisseur)
    {
        $this->bons_livraisons_fournisseur->removeElement($bonsLivraisonsFournisseur);
    }

    /**
     * Get bons_livraisons_fournisseur
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getBonsLivraisonsFournisseur()
    {
        return $this->bons_livraisons_fournisseur;
    }

    /**
     * Add bon_retour
     *
     * @param \Gds\VenteBundle\Entity\BonLivraisonRetourClient $bonRetour
     * @return Departement
     */
    public function addBonRetour(\Gds\VenteBundle\Entity\BonLivraisonRetourClient $bonRetour)
    {
        $this->bon_retour[] = $bonRetour;

        return $this;
    }

    /**
     * Remove bon_retour
     *
     * @param \Gds\VenteBundle\Entity\BonLivraisonRetourClient $bonRetour
     */
    public function removeBonRetour(\Gds\VenteBundle\Entity\BonLivraisonRetourClient $bonRetour)
    {
        $this->bon_retour->removeElement($bonRetour);
    }

    /**
     * Get bon_retour
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getBonRetour()
    {
        return $this->bon_retour;
    }
}
